package shuati.shua;
/*
* 左移右移数组k位*/
public class RightRotateArray {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7};
        int k = 2;

        rotateArray(arr, k);

        for (int num : arr) {
            System.out.print(num + " ");
        }
    }

    public static void rotateArray(int[] arr, int k) {
        int n = arr.length;
        k = k % n; // 确保k在0到n之间

        // 反转整个数组
//        reverse(arr, 0, n - 1);

        // 反转前k个元素
      // reverse(arr, n-k+1, n-1);
       // reverse(arr, 0, k - 1);
        // 反转剩余的元素
//        reverse(arr, k, n - 1);

        // 反转前k个元素
        reverse(arr, 0, k - 1);

        // 反转剩余的元素
        reverse(arr, k, n - 1);

        // 反转整个数组
        reverse(arr, 0, n - 1);



    }

    public static void reverse(int[] arr, int start, int end) {
        while (start < end) {
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
            start++;
            end--;
        }
    }
}
